home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c7.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  45.6 KB  |  1,812 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. void rT278fatal_error_is_deferred(T278 *C){
  11. /*UT*/(T45*)oRBC27eh;
  12. rT45add_position(rT278start_position(C));
  13. /*UT*/(T45*)oRBC27eh;
  14. rT45append(XrT67to_string((C)->_name));
  15. /*UT*/(T45*)oRBC27eh;
  16. rT45append((T0 *)ms1524);
  17. /*UT*/(T45*)oRBC27eh;
  18. rT45append(XrT58written_mark((C)->_current_type));
  19. rT278fatal_error((T0 *)ms38);
  20. }
  21. void rT278error(/*C*/T0 * a1,T0* a2){
  22. /*UT*/(T45*)oRBC27eh;
  23. rT45add_position(a1);
  24. rT45error((T45*)oRBC27eh,a2);
  25. }
  26. void rT278add_clients(T278 *C,T0 * a1){
  27. int _i=0;
  28. /*IF*/if (!((C)->_actuals_clients)) {
  29. C->_actuals_clients=ma(263,0,1,a1);
  30. }
  31. else {
  32. _i=((T263*)(C)->_actuals_clients)->_lower;
  33. while (!(((_i)>(((T263*)(C)->_actuals_clients)->_upper))||(((T0 *)rT263item((T263*)(C)->_actuals_clients,_i))==((T0 *)a1)))) {
  34. _i=(_i)+(1);
  35. }
  36. /*IF*/if ((_i)>(((T263*)(C)->_actuals_clients)->_upper)) {
  37. rT263add_last((T263*)(C)->_actuals_clients,a1);
  38. }
  39. /*FI*/}
  40. /*FI*/}
  41. T0 * rT278clients(T278 *C){
  42. T0 * R=NULL;
  43. T0 * _bfbc=NULL;
  44. T0 * _bc=NULL;
  45. _bc=XrT58base_class((C)->_current_type);
  46. _bfbc=XrT203base_class((C)->_base_feature);
  47. /*IF*/if (((T0 *)_bc)==((T0 *)_bfbc)) {
  48. R=XrT203clients((C)->_base_feature);
  49. }
  50. else {
  51. /*IF*/if (!(rT50is_subclass_of((T50*)_bc,_bfbc))) {
  52. /*UT*/(T45*)oRBC27eh;
  53. rT45add_position(XrT67start_position((C)->_name));
  54. /*UT*/(T45*)oRBC27eh;
  55. rT45add_position(XrT203start_position((C)->_base_feature));
  56. /*UT*/(T45*)oRBC27eh;
  57. rT45append(((T48*)((T50*)_bc)->_base_class_name)->_to_string);
  58. /*UT*/(T45*)oRBC27eh;
  59. rT45append((T0 *)ms1122);
  60. /*UT*/(T45*)oRBC27eh;
  61. rT45append(((T48*)((T50*)_bfbc)->_base_class_name)->_to_string);
  62. rT278error(NULL,(T0 *)ms1123);
  63. }
  64. /*FI*/R=rT50clients_for((T50*)_bc,(C)->_name,(C)->_base_feature);
  65. }
  66. /*FI*/return R;
  67. }
  68. int rT278id(T278 *C){
  69. int R=0;
  70. R=XrT58id((C)->_current_type);
  71. return R;
  72. }
  73. T0 * rT278start_position(T278 *C){
  74. T0 * R=NULL;
  75. R=XrT203start_position((C)->_base_feature);
  76. return R;
  77. }
  78. int rT278use_current(T278 *C){
  79. int R=0;
  80. {int iv1=(C)->_use_current_state;
  81. if (1018 == iv1) goto l83;
  82. goto l84;
  83.  l83: ;
  84. R=1;
  85. goto l82;
  86.  l84: ;
  87. if (1017 == iv1) goto l85;
  88. goto l86;
  89.  l85: ;
  90. goto l82;
  91.  l86: ;
  92. if (1019 == iv1) goto l87;
  93. goto l88;
  94.  l87: ;
  95. C->_use_current_state=1020;
  96. rT278compute_use_current(C);
  97. R=rT278use_current(C);
  98. goto l82;
  99.  l88: ;
  100. if (1020 == iv1) goto l89;
  101. goto l90;
  102.  l89: ;
  103. R=1;
  104. goto l82;
  105.  l90: ;
  106.  l82: ;
  107. }
  108. return R;
  109. }
  110. void rT278c_define(T278 *C){
  111. rT278fatal_error_is_deferred(C);
  112. }
  113. int rT278can_be_dropped(T278 *C){
  114. int R=0;
  115. rT278fatal_error_is_deferred(C);
  116. return R;
  117. }
  118. void rT278mapping_c(T278 *C){
  119. rT278fatal_error_is_deferred(C);
  120. }
  121. void rT278mapping_name(T278 *C){
  122. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1189);
  123. rT40put_integer((T40*)oRBC27cpp,rT278id(C));
  124. XrT67mapping_c((C)->_name);
  125. }
  126. T0 * rT278run_class(T278 *C){
  127. T0 * R=NULL;
  128. R=XrT58run_class((C)->_current_type);
  129. return R;
  130. }
  131. int rT278is_exported_in(T278 *C,T0 * a1){
  132. int R=0;
  133. R=rT123gives_permission_to((T123*)rT278clients(C),a1);
  134. return R;
  135. }
  136. void rT278copy(T278 *C,T0 * a1){
  137. /*IF*//*AF*//*AE*/
  138. memcpy(C,a1,s[C->id]);
  139. /*FI*/}
  140. int rT278arg_count(T278 *C){
  141. int R=0;
  142. /*IF*/if (((int)(C)->_arguments)) {
  143. R=rT92count((T92*)(C)->_arguments);
  144. }
  145. /*FI*/return R;
  146. }
  147. void rT278initialize(T278 *C){
  148. rT50set_is_deferred((T50*)XrT58base_class((C)->_current_type));
  149. C->_arguments=XrT203arguments((C)->_base_feature);
  150. /*IF*/if ((((int)(C)->_arguments))&&((rT92count((T92*)(C)->_arguments))>(0))) {
  151. C->_arguments=rT92to_runnable((T92*)(C)->_arguments,(C)->_current_type);
  152. }
  153. /*FI*/C->_result_type=XrT203result_type((C)->_base_feature);
  154. /*IF*/if (((int)(C)->_result_type)) {
  155. C->_result_type=XrT58to_runnable((C)->_result_type,(C)->_current_type);
  156. }
  157. /*FI*/}
  158. void rT278fall_down(T278 *C){
  159. T0 * _rf=NULL;
  160. T0 * _sub_name=NULL;
  161. T0 * _sub_bc=NULL;
  162. T0 * _current_bc=NULL;
  163. T0 * _sub_rc=NULL;
  164. T0 * _current_rc=NULL;
  165. int _i=0;
  166. T0* _running=NULL;
  167. _current_rc=XrT58run_class((C)->_current_type);
  168. _running=((T260*)_current_rc)->_running;
  169. /*IF*/if (((int)_running)) {
  170. _current_bc=XrT58base_class((C)->_current_type);
  171. _i=((T263*)_running)->_lower;
  172. while (!((_i)>(((T263*)_running)->_upper))) {
  173. _sub_rc=rT263item((T263*)_running,_i);
  174. /*IF*/if (((T0 *)_sub_rc)!=((T0 *)_current_rc)) {
  175. _sub_bc=XrT58base_class(((T260*)_sub_rc)->_current_type);
  176. _sub_name=rT50name_of((T50*)_sub_bc,_current_bc,(C)->_name);
  177. _rf=rT260get_feature((T260*)_sub_rc,_sub_name);
  178. }
  179. /*FI*/_i=(_i)+(1);
  180. }
  181. }
  182. /*FI*/}
  183. void rT278make(T278 *C,T0 * a1,T0 * a2,T0 * a3){
  184. C->_current_type=a1;
  185. C->_name=a2;
  186. C->_base_feature=a3;
  187. rT264put((T264*)((T260*)rT278run_class(C))->_feature_dictionary,(T0 *)C,XrT67to_key((C)->_name));
  188. rT52incr_magic_count((T52*)oRBC27small_eiffel);
  189. C->_use_current_state=1019;
  190. rT52push((T52*)oRBC27small_eiffel,(T0 *)C);
  191. rT278initialize(C);
  192. rT52pop((T52*)oRBC27small_eiffel);
  193. }
  194. void rT277address_of(T277 *C){
  195. /*UT*/(T45*)oRBC27eh;
  196. rT45add_position(rT277start_position(C));
  197. rT277fatal_error((T0 *)ms1523);
  198. }
  199. void rT277warning(/*C*/T0 * a1,T0* a2){
  200. /*UT*/(T45*)oRBC27eh;
  201. rT45add_position(a1);
  202. rT45warning((T45*)oRBC27eh,a2);
  203. }
  204. int rT277is_static(T277 *C){
  205. int R=0;
  206. R=XrT68is_static((C)->_value);
  207. return R;
  208. }
  209. void rT277compute_use_current(T277 *C){
  210. rT277std_compute_use_current(C);
  211. }
  212. int rT277static_value_mem(T277 *C){
  213. int R=0;
  214. R=XrT68static_value((C)->_value);
  215. return R;
  216. }
  217. void rT277fatal_error(/*C*/T0* a1){
  218. rT45fatal_error((T45*)oRBC27eh,a1);
  219. }
  220. void rT277error(/*C*/T0 * a1,T0* a2){
  221. /*UT*/(T45*)oRBC27eh;
  222. rT45add_position(a1);
  223. rT45error((T45*)oRBC27eh,a2);
  224. }
  225. void rT277add_clients(T277 *C,T0 * a1){
  226. int _i=0;
  227. /*IF*/if (!((C)->_actuals_clients)) {
  228. C->_actuals_clients=ma(263,0,1,a1);
  229. }
  230. else {
  231. _i=((T263*)(C)->_actuals_clients)->_lower;
  232. while (!(((_i)>(((T263*)(C)->_actuals_clients)->_upper))||(((T0 *)rT263item((T263*)(C)->_actuals_clients,_i))==((T0 *)a1)))) {
  233. _i=(_i)+(1);
  234. }
  235. /*IF*/if ((_i)>(((T263*)(C)->_actuals_clients)->_upper)) {
  236. rT263add_last((T263*)(C)->_actuals_clients,a1);
  237. }
  238. /*FI*/}
  239. /*FI*/}
  240. T0 * rT277clients(T277 *C){
  241. T0 * R=NULL;
  242. T0 * _bfbc=NULL;
  243. T0 * _bc=NULL;
  244. _bc=XrT58base_class((C)->_current_type);
  245. _bfbc=XrT145base_class((C)->_base_feature);
  246. /*IF*/if (((T0 *)_bc)==((T0 *)_bfbc)) {
  247. R=XrT145clients((C)->_base_feature);
  248. }
  249. else {
  250. /*IF*/if (!(rT50is_subclass_of((T50*)_bc,_bfbc))) {
  251. /*UT*/(T45*)oRBC27eh;
  252. rT45add_position(XrT67start_position((C)->_name));
  253. /*UT*/(T45*)oRBC27eh;
  254. rT45add_position(XrT145start_position((C)->_base_feature));
  255. /*UT*/(T45*)oRBC27eh;
  256. rT45append(((T48*)((T50*)_bc)->_base_class_name)->_to_string);
  257. /*UT*/(T45*)oRBC27eh;
  258. rT45append((T0 *)ms1122);
  259. /*UT*/(T45*)oRBC27eh;
  260. rT45append(((T48*)((T50*)_bfbc)->_base_class_name)->_to_string);
  261. rT277error(NULL,(T0 *)ms1123);
  262. }
  263. /*FI*/R=rT50clients_for((T50*)_bc,(C)->_name,(C)->_base_feature);
  264. }
  265. /*FI*/return R;
  266. }
  267. int rT277id(T277 *C){
  268. int R=0;
  269. R=XrT58id((C)->_current_type);
  270. return R;
  271. }
  272. void rT277std_compute_use_current(T277 *C){
  273. /*IF*/if (((C)->_use_current_state)==(1020)) {
  274. /*IF*/if (((int)(C)->_require_assertion)) {
  275. /*IF*/if (rT267use_current((T267*)(C)->_require_assertion)) {
  276. C->_use_current_state=1018;
  277. }
  278. /*FI*/}
  279. /*FI*/}
  280. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  281. /*IF*/if (((int)(C)->_routine_body)) {
  282. /*IF*/if (rT140use_current((T140*)(C)->_routine_body)) {
  283. C->_use_current_state=1018;
  284. }
  285. /*FI*/}
  286. /*FI*/}
  287. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  288. /*IF*/if (((int)(C)->_ensure_assertion)) {
  289. /*IF*/if (rT157use_current((T157*)(C)->_ensure_assertion)) {
  290. C->_use_current_state=1018;
  291. }
  292. /*FI*/}
  293. /*FI*/}
  294. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  295. C->_use_current_state=1017;
  296. }
  297. /*FI*/}
  298. T0 * rT277start_position(T277 *C){
  299. T0 * R=NULL;
  300. R=XrT145start_position((C)->_base_feature);
  301. return R;
  302. }
  303. int rT277use_current(T277 *C){
  304. int R=0;
  305. {int iv1=(C)->_use_current_state;
  306. if (1018 == iv1) goto l92;
  307. goto l93;
  308.  l92: ;
  309. R=1;
  310. goto l91;
  311.  l93: ;
  312. if (1017 == iv1) goto l94;
  313. goto l95;
  314.  l94: ;
  315. goto l91;
  316.  l95: ;
  317. if (1019 == iv1) goto l96;
  318. goto l97;
  319.  l96: ;
  320. C->_use_current_state=1020;
  321. rT277compute_use_current(C);
  322. R=rT277use_current(C);
  323. goto l91;
  324.  l97: ;
  325. if (1020 == iv1) goto l98;
  326. goto l99;
  327.  l98: ;
  328. R=1;
  329. goto l91;
  330.  l99: ;
  331.  l91: ;
  332. }
  333. return R;
  334. }
  335. int rT277can_be_dropped(T277 *C){
  336. int R=0;
  337. rT277warning(rT277start_position(C),(T0 *)ms1550);
  338. return R;
  339. }
  340. void rT277mapping_c(T277 *C){
  341. T0 * _real_constant=NULL;
  342. /*IF*/if (XrT68is_manifest_string((C)->_value)) {
  343. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1555);
  344. XrT68compile_to_c((C)->_value);
  345. }
  346.  else if (XrT58is_double((C)->_result_type)) {
  347. _real_constant=(C)->_value;
  348. if ((int)_real_constant) switch (((T0 *)_real_constant)->id) {
  349. case 79: 
  350. break;
  351. default:
  352. _real_constant = NULL;
  353. };rT40put_string((T40*)oRBC27cpp,((T79*)_real_constant)->_to_string);
  354. }
  355. else {
  356. XrT68compile_to_c((C)->_value);
  357. }
  358. /*FI*/}
  359. void rT277mapping_name(T277 *C){
  360. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1189);
  361. rT40put_integer((T40*)oRBC27cpp,rT277id(C));
  362. XrT67mapping_c((C)->_name);
  363. }
  364. T0 * rT277run_class(T277 *C){
  365. T0 * R=NULL;
  366. R=XrT58run_class((C)->_current_type);
  367. return R;
  368. }
  369. int rT277is_exported_in(T277 *C,T0 * a1){
  370. int R=0;
  371. R=rT123gives_permission_to((T123*)rT277clients(C),a1);
  372. return R;
  373. }
  374. void rT277copy(T277 *C,T0 * a1){
  375. /*IF*//*AF*//*AE*/
  376. memcpy(C,a1,s[C->id]);
  377. /*FI*/}
  378. int rT277arg_count(T277 *C){
  379. int R=0;
  380. /*IF*/if (((int)(C)->_arguments)) {
  381. R=rT92count((T92*)(C)->_arguments);
  382. }
  383. /*FI*/return R;
  384. }
  385. void rT277initialize(T277 *C){
  386. int _i=0;
  387. _i=rT128index_of((T128*)XrT145names((C)->_base_feature),(C)->_name);
  388. C->_value=XrT145value((C)->_base_feature,_i);
  389. C->_value=XrT68to_runnable((C)->_value,(C)->_current_type);
  390. C->_result_type=XrT58to_runnable(XrT145result_type((C)->_base_feature),(C)->_current_type);
  391. }
  392. void rT277fall_down(T277 *C){
  393. T0 * _rf=NULL;
  394. T0 * _sub_name=NULL;
  395. T0 * _sub_bc=NULL;
  396. T0 * _current_bc=NULL;
  397. T0 * _sub_rc=NULL;
  398. T0 * _current_rc=NULL;
  399. int _i=0;
  400. T0* _running=NULL;
  401. _current_rc=XrT58run_class((C)->_current_type);
  402. _running=((T260*)_current_rc)->_running;
  403. /*IF*/if (((int)_running)) {
  404. _current_bc=XrT58base_class((C)->_current_type);
  405. _i=((T263*)_running)->_lower;
  406. while (!((_i)>(((T263*)_running)->_upper))) {
  407. _sub_rc=rT263item((T263*)_running,_i);
  408. /*IF*/if (((T0 *)_sub_rc)!=((T0 *)_current_rc)) {
  409. _sub_bc=XrT58base_class(((T260*)_sub_rc)->_current_type);
  410. _sub_name=rT50name_of((T50*)_sub_bc,_current_bc,(C)->_name);
  411. _rf=rT260get_feature((T260*)_sub_rc,_sub_name);
  412. }
  413. /*FI*/_i=(_i)+(1);
  414. }
  415. }
  416. /*FI*/}
  417. void rT277make(T277 *C,T0 * a1,T0 * a2,T0 * a3){
  418. C->_current_type=a1;
  419. C->_name=a2;
  420. C->_base_feature=a3;
  421. rT264put((T264*)((T260*)rT277run_class(C))->_feature_dictionary,(T0 *)C,XrT67to_key((C)->_name));
  422. rT52incr_magic_count((T52*)oRBC27small_eiffel);
  423. C->_use_current_state=1019;
  424. rT52push((T52*)oRBC27small_eiffel,(T0 *)C);
  425. rT277initialize(C);
  426. rT52pop((T52*)oRBC27small_eiffel);
  427. }
  428. void rT273address_of(T273 *C){
  429. rT273mapping_name(C);
  430. }
  431. void rT273once_flag(T273 *C){
  432. rT40put_character((T40*)oRBC27cpp,'o');
  433. rT40put_character((T40*)oRBC27cpp,'f');
  434. rT255mapping_c_name((T255*)(C)->_base_feature);
  435. }
  436. void rT273once_boolean(T273 *C){
  437. rT40swap_on_h((T40*)oRBC27cpp);
  438. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1527);
  439. rT273once_flag(C);
  440. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1528);
  441. rT40swap_on_c((T40*)oRBC27cpp);
  442. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1529);
  443. rT273once_flag(C);
  444. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1530);
  445. }
  446. void rT273once_variable_aux(T273 *C){
  447. rT40put_character((T40*)oRBC27cpp,'T');
  448. /*IF*/if (XrT58is_expanded((C)->_result_type)) {
  449. rT40put_integer((T40*)oRBC27cpp,XrT58id((C)->_result_type));
  450. rT40put_character((T40*)oRBC27cpp,'\40');
  451. }
  452. else {
  453. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1541);
  454. }
  455. /*FI*/rT273once_result(C);
  456. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1542);
  457. }
  458. void rT273once_variable(T273 *C){
  459. rT40swap_on_h((T40*)oRBC27cpp);
  460. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1540);
  461. rT273once_variable_aux(C);
  462. rT40swap_on_c((T40*)oRBC27cpp);
  463. rT273once_variable_aux(C);
  464. }
  465. void rT273compute_use_current(T273 *C){
  466. rT273std_compute_use_current(C);
  467. }
  468. void rT273once_result(T273 *C){
  469. rT40put_string((T40*)oRBC27cpp,(T0 *)ms844);
  470. rT255mapping_c_name((T255*)(C)->_base_feature);
  471. }
  472. void rT273define_closing(T273 *C){
  473. /*IF*/if (rT44ensure_check((T44*)oRBC27eiffel_run_control)) {
  474. /*IF*/if (((int)(C)->_ensure_assertion)) {
  475. rT157compile_to_c((T157*)(C)->_ensure_assertion);
  476. }
  477. /*FI*/}
  478. /*FI*//*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  479. rT40rs_unlink((T40*)oRBC27cpp);
  480. }
  481. /*FI*/}
  482. void rT273define_opening(T273 *C){
  483. T0 * _t=NULL;
  484. int _i=0;
  485. /*IF*/if (((int)(C)->_result_type)) {
  486. _t=XrT58run_type((C)->_result_type);
  487. /*(IRF3*/(((T7*)oRBC261dos)->_count)=(0);
  488. /*)*/XrT58c_type_in(_t,oRBC261dos);
  489. rT40put_string((T40*)oRBC27cpp,oRBC261dos);
  490. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1365);
  491. XrT58c_initialize(_t);
  492. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1367);
  493. }
  494. /*FI*//*IF*/if (((int)(C)->_local_vars)) {
  495. rT139compile_to_c((T139*)(C)->_local_vars);
  496. }
  497. /*FI*//*IF*/if (rT44ensure_check((T44*)oRBC27eiffel_run_control)) {
  498. /*IF*/if (((int)(C)->_ensure_assertion)) {
  499. rT157compile_to_c_old((T157*)(C)->_ensure_assertion);
  500. }
  501. /*FI*/}
  502. /*FI*//*IF*/if (((int)(C)->_local_vars)) {
  503. rT139initialize_expanded((T139*)(C)->_local_vars);
  504. }
  505. /*FI*//*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  506. rT40rs_link((T40*)oRBC27cpp,(T0 *)C);
  507. /*IF*/if (rT273use_current(C)) {
  508. rT40rs_push_current((T40*)oRBC27cpp,(C)->_current_type);
  509. }
  510. /*FI*/_i=1;
  511. while (!((_i)>(rT273arg_count(C)))) {
  512. _t=XrT58run_type(rT92type((T92*)(C)->_arguments,_i));
  513. rT40rs_push_argument((T40*)oRBC27cpp,XrT49to_string(rT92name((T92*)(C)->_arguments,_i)),_i,_t);
  514. _i=(_i)+(1);
  515. }
  516. /*IF*/if (((int)(C)->_result_type)) {
  517. rT40rs_push_result((T40*)oRBC27cpp,XrT58run_type((C)->_result_type));
  518. }
  519. /*FI*//*IF*/if (((int)(C)->_local_vars)) {
  520. _i=1;
  521. while (!((_i)>(rT139count((T139*)(C)->_local_vars)))) {
  522. _t=XrT58run_type(rT139type((T139*)(C)->_local_vars,_i));
  523. rT40rs_push_local((T40*)oRBC27cpp,XrT49to_string(rT139name((T139*)(C)->_local_vars,_i)),_t);
  524. _i=(_i)+(1);
  525. }
  526. }
  527. /*FI*/}
  528. /*FI*//*IF*/if (rT44require_check((T44*)oRBC27eiffel_run_control)) {
  529. /*IF*/if (((int)(C)->_require_assertion)) {
  530. rT267compile_to_c((T267*)(C)->_require_assertion);
  531. }
  532. /*FI*/}
  533. /*FI*/}
  534. void rT273define_prototype(T273 *C){
  535. int _mem_id=0;
  536. T0 * _t=NULL;
  537. T0 * _fn=NULL;
  538. _mem_id=rT273id(C);
  539. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  540. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1352);
  541. rT40put_integer((T40*)oRBC27cpp,_mem_id);
  542. XrT67mapping_c((C)->_name);
  543. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1353);
  544. _fn=rT255first_name((T255*)(C)->_base_feature);
  545. /*IF*/if (XrT67is_infix_name(_fn)) {
  546. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1354);
  547. }
  548.  else if (XrT67is_prefix_name(_fn)) {
  549. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1355);
  550. }
  551. /*FI*/rT40put_string((T40*)oRBC27cpp,XrT67to_string(_fn));
  552. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1356);
  553. rT40put_string((T40*)oRBC27cpp,((T48*)rT255base_class_name((T255*)(C)->_base_feature))->_to_string);
  554. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1357);
  555. rT40swap_on_h((T40*)oRBC27cpp);
  556. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1358);
  557. rT40put_integer((T40*)oRBC27cpp,_mem_id);
  558. XrT67mapping_c((C)->_name);
  559. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1359);
  560. }
  561. /*FI*//*(IRF3*/(((T7*)oRBC261dps)->_count)=(0);
  562. /*)*//*IF*/if (!((C)->_result_type)) {
  563. rT7append((T7*)oRBC261dps,(T0 *)ms1360);
  564. }
  565. else {
  566. _t=XrT58run_type((C)->_result_type);
  567. XrT58c_type_in(_t,oRBC261dps);
  568. rT7extend((T7*)oRBC261dps,'\40');
  569. }
  570. /*FI*/rT7append((T7*)oRBC261dps,(T0 *)ms1361);
  571. rT2append_in(_mem_id,oRBC261dps);
  572. XrT67mapping_c_in((C)->_name,oRBC261dps);
  573. rT7extend((T7*)oRBC261dps,'\50');
  574. /*IF*/if (rT273use_current(C)) {
  575. rT7extend((T7*)oRBC261dps,'T');
  576. rT2append_in(_mem_id,oRBC261dps);
  577. rT7extend((T7*)oRBC261dps,'\40');
  578. /*IF*/if (!(XrT58fast_mapping_c((C)->_current_type))) {
  579. rT7extend((T7*)oRBC261dps,'\52');
  580. }
  581. /*FI*/rT7extend((T7*)oRBC261dps,'C');
  582. /*IF*/if (((int)(C)->_arguments)) {
  583. rT7extend((T7*)oRBC261dps,'\54');
  584. }
  585. /*FI*/}
  586. else {
  587. rT7append((T7*)oRBC261dps,(T0 *)ms1362);
  588. }
  589. /*FI*//*IF*/if (!((C)->_arguments)) {
  590. /*IF*/if (!(rT273use_current(C))) {
  591. rT7append((T7*)oRBC261dps,(T0 *)ms1363);
  592. }
  593. /*FI*/}
  594. else {
  595. rT92compile_to_c_in((T92*)(C)->_arguments,oRBC261dps);
  596. }
  597. /*FI*/rT7extend((T7*)oRBC261dps,'\51');
  598. rT40put_c_heading((T40*)oRBC27cpp,oRBC261dps);
  599. rT40swap_on_c((T40*)oRBC27cpp);
  600. }
  601. T0*oRBC273frozen_general;
  602. void rT273pre_computing(T273 *C){
  603. T0 * _bfbc=NULL;
  604. _bfbc=((T255*)(C)->_base_feature)->_base_class;
  605. rT38put_string((T38*)oRBC1std_output,((T48*)((T50*)_bfbc)->_base_class_name)->_to_string);
  606. rT38put_character((T38*)oRBC1std_output,'\56');
  607. rT38put_string((T38*)oRBC1std_output,XrT67to_string((C)->_name));
  608. rT40put_string((T40*)oRBC27cpp,(T0 *)ms843);
  609. rT140compile_to_c((T140*)(C)->_routine_body);
  610. rT273once_result(C);
  611. rT40put_string((T40*)oRBC27cpp,(T0 *)ms845);
  612. }
  613. void rT273error(/*C*/T0 * a1,T0* a2){
  614. /*UT*/(T45*)oRBC27eh;
  615. rT45add_position(a1);
  616. rT45error((T45*)oRBC27eh,a2);
  617. }
  618. void rT273add_clients(T273 *C,T0 * a1){
  619. int _i=0;
  620. /*IF*/if (!((C)->_actuals_clients)) {
  621. C->_actuals_clients=ma(263,0,1,a1);
  622. }
  623. else {
  624. _i=((T263*)(C)->_actuals_clients)->_lower;
  625. while (!(((_i)>(((T263*)(C)->_actuals_clients)->_upper))||(((T0 *)rT263item((T263*)(C)->_actuals_clients,_i))==((T0 *)a1)))) {
  626. _i=(_i)+(1);
  627. }
  628. /*IF*/if ((_i)>(((T263*)(C)->_actuals_clients)->_upper)) {
  629. rT263add_last((T263*)(C)->_actuals_clients,a1);
  630. }
  631. /*FI*/}
  632. /*FI*/}
  633. T0 * rT273clients(T273 *C){
  634. T0 * R=NULL;
  635. T0 * _bfbc=NULL;
  636. T0 * _bc=NULL;
  637. _bc=XrT58base_class((C)->_current_type);
  638. _bfbc=((T255*)(C)->_base_feature)->_base_class;
  639. /*IF*/if (((T0 *)_bc)==((T0 *)_bfbc)) {
  640. R=((T255*)(C)->_base_feature)->_clients;
  641. }
  642. else {
  643. /*IF*/if (!(rT50is_subclass_of((T50*)_bc,_bfbc))) {
  644. /*UT*/(T45*)oRBC27eh;
  645. rT45add_position(XrT67start_position((C)->_name));
  646. /*UT*/(T45*)oRBC27eh;
  647. rT45add_position(rT255start_position((T255*)(C)->_base_feature));
  648. /*UT*/(T45*)oRBC27eh;
  649. rT45append(((T48*)((T50*)_bc)->_base_class_name)->_to_string);
  650. /*UT*/(T45*)oRBC27eh;
  651. rT45append((T0 *)ms1122);
  652. /*UT*/(T45*)oRBC27eh;
  653. rT45append(((T48*)((T50*)_bfbc)->_base_class_name)->_to_string);
  654. rT273error(NULL,(T0 *)ms1123);
  655. }
  656. /*FI*/R=rT50clients_for((T50*)_bc,(C)->_name,(C)->_base_feature);
  657. }
  658. /*FI*/return R;
  659. }
  660. void rT273std_compute_use_current(T273 *C){
  661. /*IF*/if (((C)->_use_current_state)==(1020)) {
  662. /*IF*/if (((int)(C)->_require_assertion)) {
  663. /*IF*/if (rT267use_current((T267*)(C)->_require_assertion)) {
  664. C->_use_current_state=1018;
  665. }
  666. /*FI*/}
  667. /*FI*/}
  668. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  669. /*IF*/if (((int)(C)->_routine_body)) {
  670. /*IF*/if (rT140use_current((T140*)(C)->_routine_body)) {
  671. C->_use_current_state=1018;
  672. }
  673. /*FI*/}
  674. /*FI*/}
  675. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  676. /*IF*/if (((int)(C)->_ensure_assertion)) {
  677. /*IF*/if (rT157use_current((T157*)(C)->_ensure_assertion)) {
  678. C->_use_current_state=1018;
  679. }
  680. /*FI*/}
  681. /*FI*/}
  682. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  683. C->_use_current_state=1017;
  684. }
  685. /*FI*/}
  686. int rT273id(T273 *C){
  687. int R=0;
  688. R=XrT58id((C)->_current_type);
  689. return R;
  690. }
  691. T0 * rT273start_position(T273 *C){
  692. T0 * R=NULL;
  693. R=rT255start_position((T255*)(C)->_base_feature);
  694. return R;
  695. }
  696. int rT273use_current(T273 *C){
  697. int R=0;
  698. {int iv1=(C)->_use_current_state;
  699. if (1018 == iv1) goto l101;
  700. goto l102;
  701.  l101: ;
  702. R=1;
  703. goto l100;
  704.  l102: ;
  705. if (1017 == iv1) goto l103;
  706. goto l104;
  707.  l103: ;
  708. goto l100;
  709.  l104: ;
  710. if (1019 == iv1) goto l105;
  711. goto l106;
  712.  l105: ;
  713. C->_use_current_state=1020;
  714. rT273compute_use_current(C);
  715. R=rT273use_current(C);
  716. goto l100;
  717.  l106: ;
  718. if (1020 == iv1) goto l107;
  719. goto l108;
  720.  l107: ;
  721. R=1;
  722. goto l100;
  723.  l108: ;
  724.  l100: ;
  725. }
  726. return R;
  727. }
  728. void rT273c_define(T273 *C){
  729. T0 * _bfbc=NULL;
  730. _bfbc=((T255*)(C)->_base_feature)->_base_class;
  731. /*IF*/if (rT273is_pre_computable(C)) {
  732. /*IF*/if (!(rT50already_defined((T50*)_bfbc,(C)->_name))) {
  733. rT273once_variable(C);
  734. rT50set_already_defined((T50*)_bfbc,(C)->_name);
  735. }
  736. /*FI*/rT40incr_pre_computed_once_count((T40*)oRBC27cpp,(T0 *)C);
  737. }
  738. else {
  739. /*IF*/if (!(rT50already_defined((T50*)_bfbc,(C)->_name))) {
  740. rT273once_boolean(C);
  741. rT273once_variable(C);
  742. rT50set_already_defined((T50*)_bfbc,(C)->_name);
  743. }
  744. /*FI*/rT273define_prototype(C);
  745. rT273define_opening(C);
  746. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1543);
  747. rT273once_flag(C);
  748. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1544);
  749. rT273once_flag(C);
  750. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1545);
  751. /*IF*/if (((int)(C)->_routine_body)) {
  752. rT140compile_to_c((T140*)(C)->_routine_body);
  753. }
  754. /*FI*/rT273once_result(C);
  755. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1546);
  756. rT273define_closing(C);
  757. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1547);
  758. rT273once_result(C);
  759. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1548);
  760. }
  761. /*FI*/}
  762. void rT273mapping_c(T273 *C){
  763. int _tcbd=0;
  764. /*IF*/if (rT273is_pre_computable(C)) {
  765. rT273once_result(C);
  766. }
  767.  else if (rT273use_current(C)) {
  768. rT273mapping_name(C);
  769. rT40put_character((T40*)oRBC27cpp,'\50');
  770. rT40put_target((T40*)oRBC27cpp);
  771. /*IF*/if ((rT273arg_count(C))>(0)) {
  772. rT40put_character((T40*)oRBC27cpp,'\54');
  773. rT40put_arguments((T40*)oRBC27cpp);
  774. }
  775. /*FI*/rT40put_character((T40*)oRBC27cpp,'\51');
  776. }
  777. else {
  778. _tcbd=rT40target_cannot_be_dropped((T40*)oRBC27cpp);
  779. rT273mapping_name(C);
  780. rT40put_character((T40*)oRBC27cpp,'\50');
  781. /*IF*/if ((rT273arg_count(C))>(0)) {
  782. rT40put_arguments((T40*)oRBC27cpp);
  783. }
  784. /*FI*/rT40put_character((T40*)oRBC27cpp,'\51');
  785. /*IF*/if (_tcbd) {
  786. rT40put_character((T40*)oRBC27cpp,'\51');
  787. }
  788. /*FI*/}
  789. /*FI*/}
  790. void rT273mapping_name(T273 *C){
  791. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1189);
  792. rT40put_integer((T40*)oRBC27cpp,rT273id(C));
  793. XrT67mapping_c((C)->_name);
  794. }
  795. T0 * rT273run_class(T273 *C){
  796. T0 * R=NULL;
  797. R=XrT58run_class((C)->_current_type);
  798. return R;
  799. }
  800. int rT273is_exported_in(T273 *C,T0 * a1){
  801. int R=0;
  802. R=rT123gives_permission_to((T123*)rT273clients(C),a1);
  803. return R;
  804. }
  805. void rT273copy(T273 *C,T0 * a1){
  806. /*IF*//*AF*//*AE*/
  807. memcpy(C,a1,s[C->id]);
  808. /*FI*/}
  809. int rT273arg_count(T273 *C){
  810. int R=0;
  811. /*IF*/if (((int)(C)->_arguments)) {
  812. R=rT92count((T92*)(C)->_arguments);
  813. }
  814. /*FI*/return R;
  815. }
  816. int rT273is_pre_computable(T273 *C){
  817. int R=0;
  818. /*IF*/if (rT41has((T41*)oRBC273frozen_general,XrT67to_string((C)->_name))) {
  819. R=1;
  820. }
  821.  else if (!((C)->_routine_body)) {
  822. R=1;
  823. }
  824.  else if ((((XrT58is_reference((C)->_result_type))&&(!(rT273use_current(C))))&&(!((C)->_arguments)))&&(!((C)->_local_vars))) {
  825. R=rT140is_pre_computable((T140*)(C)->_routine_body);
  826. }
  827. /*FI*/return R;
  828. }
  829. void rT273initialize(T273 *C){
  830. C->_arguments=((T255*)(C)->_base_feature)->_arguments;
  831. /*IF*/if ((((int)(C)->_arguments))&&((rT92count((T92*)(C)->_arguments))>(0))) {
  832. C->_arguments=rT92to_runnable((T92*)(C)->_arguments,(C)->_current_type);
  833. }
  834. /*FI*/C->_result_type=XrT58to_runnable(((T255*)(C)->_base_feature)->_result_type,(C)->_current_type);
  835. C->_local_vars=((T255*)(C)->_base_feature)->_local_vars;
  836. /*IF*/if ((((int)(C)->_local_vars))&&((rT139count((T139*)(C)->_local_vars))>(0))) {
  837. C->_local_vars=rT139to_runnable((T139*)(C)->_local_vars,(C)->_current_type);
  838. }
  839. /*FI*/C->_routine_body=((T255*)(C)->_base_feature)->_routine_body;
  840. /*IF*/if (((int)(C)->_routine_body)) {
  841. C->_routine_body=rT140to_runnable((T140*)(C)->_routine_body,(C)->_current_type);
  842. }
  843. /*FI*/}
  844. void rT273fall_down(T273 *C){
  845. T0 * _rf=NULL;
  846. T0 * _sub_name=NULL;
  847. T0 * _sub_bc=NULL;
  848. T0 * _current_bc=NULL;
  849. T0 * _sub_rc=NULL;
  850. T0 * _current_rc=NULL;
  851. int _i=0;
  852. T0* _running=NULL;
  853. _current_rc=XrT58run_class((C)->_current_type);
  854. _running=((T260*)_current_rc)->_running;
  855. /*IF*/if (((int)_running)) {
  856. _current_bc=XrT58base_class((C)->_current_type);
  857. _i=((T263*)_running)->_lower;
  858. while (!((_i)>(((T263*)_running)->_upper))) {
  859. _sub_rc=rT263item((T263*)_running,_i);
  860. /*IF*/if (((T0 *)_sub_rc)!=((T0 *)_current_rc)) {
  861. _sub_bc=XrT58base_class(((T260*)_sub_rc)->_current_type);
  862. _sub_name=rT50name_of((T50*)_sub_bc,_current_bc,(C)->_name);
  863. _rf=rT260get_feature((T260*)_sub_rc,_sub_name);
  864. }
  865. /*FI*/_i=(_i)+(1);
  866. }
  867. }
  868. /*FI*/}
  869. void rT273make(T273 *C,T0 * a1,T0 * a2,T0 * a3){
  870. C->_current_type=a1;
  871. C->_name=a2;
  872. C->_base_feature=a3;
  873. rT264put((T264*)((T260*)rT273run_class(C))->_feature_dictionary,(T0 *)C,XrT67to_key((C)->_name));
  874. rT52incr_magic_count((T52*)oRBC27small_eiffel);
  875. C->_use_current_state=1019;
  876. rT52push((T52*)oRBC27small_eiffel,(T0 *)C);
  877. rT273initialize(C);
  878. rT52pop((T52*)oRBC27small_eiffel);
  879. }
  880. void rT266address_of(T266 *C){
  881. rT266mapping_name(C);
  882. }
  883. void rT266warning(/*C*/T0 * a1,T0* a2){
  884. /*UT*/(T45*)oRBC27eh;
  885. rT45add_position(a1);
  886. rT45warning((T45*)oRBC27eh,a2);
  887. }
  888. void rT266compute_use_current(T266 *C){
  889. rT266std_compute_use_current(C);
  890. }
  891. int rT266isa_in_line(T266 *C){
  892. int R=0;
  893. T0 * _right_side=NULL;
  894. T0 * _assignment=NULL;
  895. /*IF*/if (rT44boost((T44*)oRBC27eiffel_run_control)) {
  896. /*IF*/if (rT266use_current(C)) {
  897. /*IF*/if ((rT266arg_count(C))<=(1)) {
  898. /*IF*/if (((!((C)->_local_vars))&&(((int)(C)->_routine_body)))&&((rT140count((T140*)(C)->_routine_body))==(1))) {
  899. _assignment=rT140first((T140*)(C)->_routine_body);
  900. if ((int)_assignment) switch (((T0 *)_assignment)->id) {
  901. case 248: 
  902. break;
  903. default:
  904. _assignment = NULL;
  905. };/*IF*/if (((int)_assignment)) {
  906. _right_side=((T248*)_assignment)->_right_side;
  907. /*IF*/if (XrT68c_simple(_right_side)) {
  908. R=!(XrT68use_current(_right_side));
  909. }
  910. /*FI*/}
  911. /*FI*/}
  912. /*FI*/}
  913. /*FI*/}
  914. else {
  915. R=(rT266arg_count(C))==(0);
  916. }
  917. /*FI*/}
  918. /*FI*/return R;
  919. }
  920. void rT266define_closing(T266 *C){
  921. /*IF*/if (rT44ensure_check((T44*)oRBC27eiffel_run_control)) {
  922. /*IF*/if (((int)(C)->_ensure_assertion)) {
  923. rT157compile_to_c((T157*)(C)->_ensure_assertion);
  924. }
  925. /*FI*/}
  926. /*FI*//*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  927. rT40rs_unlink((T40*)oRBC27cpp);
  928. }
  929. /*FI*/}
  930. void rT266define_opening(T266 *C){
  931. T0 * _t=NULL;
  932. int _i=0;
  933. /*IF*/if (((int)(C)->_result_type)) {
  934. _t=XrT58run_type((C)->_result_type);
  935. /*(IRF3*/(((T7*)oRBC261dos)->_count)=(0);
  936. /*)*/XrT58c_type_in(_t,oRBC261dos);
  937. rT40put_string((T40*)oRBC27cpp,oRBC261dos);
  938. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1365);
  939. XrT58c_initialize(_t);
  940. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1367);
  941. }
  942. /*FI*//*IF*/if (((int)(C)->_local_vars)) {
  943. rT139compile_to_c((T139*)(C)->_local_vars);
  944. }
  945. /*FI*//*IF*/if (rT44ensure_check((T44*)oRBC27eiffel_run_control)) {
  946. /*IF*/if (((int)(C)->_ensure_assertion)) {
  947. rT157compile_to_c_old((T157*)(C)->_ensure_assertion);
  948. }
  949. /*FI*/}
  950. /*FI*//*IF*/if (((int)(C)->_local_vars)) {
  951. rT139initialize_expanded((T139*)(C)->_local_vars);
  952. }
  953. /*FI*//*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  954. rT40rs_link((T40*)oRBC27cpp,(T0 *)C);
  955. /*IF*/if (rT266use_current(C)) {
  956. rT40rs_push_current((T40*)oRBC27cpp,(C)->_current_type);
  957. }
  958. /*FI*/_i=1;
  959. while (!((_i)>(rT266arg_count(C)))) {
  960. _t=XrT58run_type(rT92type((T92*)(C)->_arguments,_i));
  961. rT40rs_push_argument((T40*)oRBC27cpp,XrT49to_string(rT92name((T92*)(C)->_arguments,_i)),_i,_t);
  962. _i=(_i)+(1);
  963. }
  964. /*IF*/if (((int)(C)->_result_type)) {
  965. rT40rs_push_result((T40*)oRBC27cpp,XrT58run_type((C)->_result_type));
  966. }
  967. /*FI*//*IF*/if (((int)(C)->_local_vars)) {
  968. _i=1;
  969. while (!((_i)>(rT139count((T139*)(C)->_local_vars)))) {
  970. _t=XrT58run_type(rT139type((T139*)(C)->_local_vars,_i));
  971. rT40rs_push_local((T40*)oRBC27cpp,XrT49to_string(rT139name((T139*)(C)->_local_vars,_i)),_t);
  972. _i=(_i)+(1);
  973. }
  974. }
  975. /*FI*/}
  976. /*FI*//*IF*/if (rT44require_check((T44*)oRBC27eiffel_run_control)) {
  977. /*IF*/if (((int)(C)->_require_assertion)) {
  978. rT267compile_to_c((T267*)(C)->_require_assertion);
  979. }
  980. /*FI*/}
  981. /*FI*/}
  982. void rT266define_prototype(T266 *C){
  983. int _mem_id=0;
  984. T0 * _t=NULL;
  985. T0 * _fn=NULL;
  986. _mem_id=rT266id(C);
  987. /*IF*/if (rT44no_check((T44*)oRBC27eiffel_run_control)) {
  988. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1352);
  989. rT40put_integer((T40*)oRBC27cpp,_mem_id);
  990. XrT67mapping_c((C)->_name);
  991. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1353);
  992. _fn=rT251first_name((T251*)(C)->_base_feature);
  993. /*IF*/if (XrT67is_infix_name(_fn)) {
  994. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1354);
  995. }
  996.  else if (XrT67is_prefix_name(_fn)) {
  997. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1355);
  998. }
  999. /*FI*/rT40put_string((T40*)oRBC27cpp,XrT67to_string(_fn));
  1000. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1356);
  1001. rT40put_string((T40*)oRBC27cpp,((T48*)rT251base_class_name((T251*)(C)->_base_feature))->_to_string);
  1002. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1357);
  1003. rT40swap_on_h((T40*)oRBC27cpp);
  1004. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1358);
  1005. rT40put_integer((T40*)oRBC27cpp,_mem_id);
  1006. XrT67mapping_c((C)->_name);
  1007. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1359);
  1008. }
  1009. /*FI*//*(IRF3*/(((T7*)oRBC261dps)->_count)=(0);
  1010. /*)*//*IF*/if (!((C)->_result_type)) {
  1011. rT7append((T7*)oRBC261dps,(T0 *)ms1360);
  1012. }
  1013. else {
  1014. _t=XrT58run_type((C)->_result_type);
  1015. XrT58c_type_in(_t,oRBC261dps);
  1016. rT7extend((T7*)oRBC261dps,'\40');
  1017. }
  1018. /*FI*/rT7append((T7*)oRBC261dps,(T0 *)ms1361);
  1019. rT2append_in(_mem_id,oRBC261dps);
  1020. XrT67mapping_c_in((C)->_name,oRBC261dps);
  1021. rT7extend((T7*)oRBC261dps,'\50');
  1022. /*IF*/if (rT266use_current(C)) {
  1023. rT7extend((T7*)oRBC261dps,'T');
  1024. rT2append_in(_mem_id,oRBC261dps);
  1025. rT7extend((T7*)oRBC261dps,'\40');
  1026. /*IF*/if (!(XrT58fast_mapping_c((C)->_current_type))) {
  1027. rT7extend((T7*)oRBC261dps,'\52');
  1028. }
  1029. /*FI*/rT7extend((T7*)oRBC261dps,'C');
  1030. /*IF*/if (((int)(C)->_arguments)) {
  1031. rT7extend((T7*)oRBC261dps,'\54');
  1032. }
  1033. /*FI*/}
  1034. else {
  1035. rT7append((T7*)oRBC261dps,(T0 *)ms1362);
  1036. }
  1037. /*FI*//*IF*/if (!((C)->_arguments)) {
  1038. /*IF*/if (!(rT266use_current(C))) {
  1039. rT7append((T7*)oRBC261dps,(T0 *)ms1363);
  1040. }
  1041. /*FI*/}
  1042. else {
  1043. rT92compile_to_c_in((T92*)(C)->_arguments,oRBC261dps);
  1044. }
  1045. /*FI*/rT7extend((T7*)oRBC261dps,'\51');
  1046. rT40put_c_heading((T40*)oRBC27cpp,oRBC261dps);
  1047. rT40swap_on_c((T40*)oRBC27cpp);
  1048. }
  1049. void rT266error(/*C*/T0 * a1,T0* a2){
  1050. /*UT*/(T45*)oRBC27eh;
  1051. rT45add_position(a1);
  1052. rT45error((T45*)oRBC27eh,a2);
  1053. }
  1054. void rT266in_line(T266 *C){
  1055. int _tcbd=0;
  1056. T0 * _argument_name=NULL;
  1057. T0 * _right_side=NULL;
  1058. T0 * _left_side=NULL;
  1059. T0 * _writable=NULL;
  1060. T0 * _assignment=NULL;
  1061. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1390);
  1062. /*IF*/if (rT266use_current(C)) {
  1063. _assignment=rT140first((T140*)(C)->_routine_body);
  1064. if ((int)_assignment) switch (((T0 *)_assignment)->id) {
  1065. case 248: 
  1066. break;
  1067. default:
  1068. _assignment = NULL;
  1069. };_right_side=((T248*)_assignment)->_right_side;
  1070. _left_side=((T248*)_assignment)->_left_side;
  1071. _writable=_left_side;
  1072. if ((int)_writable) switch (((T0 *)_writable)->id) {
  1073. case 89: case 67: case 66: case 48: case 70: case 69: case 88: case 97: case 159: case 171: case 172: case 181: 
  1074. break;
  1075. default:
  1076. _writable = NULL;
  1077. };rT40put_string((T40*)oRBC27cpp,(T0 *)ms1391);
  1078. rT40put_target((T40*)oRBC27cpp);
  1079. rT40put_character((T40*)oRBC27cpp,'\51');
  1080. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1392);
  1081. rT40put_string((T40*)oRBC27cpp,XrT49to_string(_writable));
  1082. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1393);
  1083. /*IF*/if (!((C)->_arguments)) {
  1084. /*IF*/if (XrT58is_string(XrT68result_type(_right_side))) {
  1085. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1394);
  1086. }
  1087. /*FI*/XrT68compile_to_c(_right_side);
  1088. }
  1089. else {
  1090. _argument_name=_right_side;
  1091. if ((int)_argument_name) switch (((T0 *)_argument_name)->id) {
  1092. case 88: 
  1093. break;
  1094. default:
  1095. _argument_name = NULL;
  1096. };/*IF*/if (((int)_argument_name)) {
  1097. rT40put_arguments((T40*)oRBC27cpp);
  1098. }
  1099. else {
  1100. XrT68compile_to_c(_right_side);
  1101. }
  1102. /*FI*/}
  1103. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1398);
  1104. }
  1105. else {
  1106. _tcbd=rT40target_cannot_be_dropped((T40*)oRBC27cpp);
  1107. /*IF*/if (((int)(C)->_routine_body)) {
  1108. /*IF*/if (((int)(C)->_local_vars)) {
  1109. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1402);
  1110. rT266define_opening(C);
  1111. }
  1112. /*FI*/rT140compile_to_c((T140*)(C)->_routine_body);
  1113. /*IF*/if (((int)(C)->_local_vars)) {
  1114. rT266define_closing(C);
  1115. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1403);
  1116. }
  1117. /*FI*/}
  1118. /*FI*/}
  1119. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1404);
  1120. }
  1121. void rT266add_clients(T266 *C,T0 * a1){
  1122. int _i=0;
  1123. /*IF*/if (!((C)->_actuals_clients)) {
  1124. C->_actuals_clients=ma(263,0,1,a1);
  1125. }
  1126. else {
  1127. _i=((T263*)(C)->_actuals_clients)->_lower;
  1128. while (!(((_i)>(((T263*)(C)->_actuals_clients)->_upper))||(((T0 *)rT263item((T263*)(C)->_actuals_clients,_i))==((T0 *)a1)))) {
  1129. _i=(_i)+(1);
  1130. }
  1131. /*IF*/if ((_i)>(((T263*)(C)->_actuals_clients)->_upper)) {
  1132. rT263add_last((T263*)(C)->_actuals_clients,a1);
  1133. }
  1134. /*FI*/}
  1135. /*FI*/}
  1136. T0 * rT266clients(T266 *C){
  1137. T0 * R=NULL;
  1138. T0 * _bfbc=NULL;
  1139. T0 * _bc=NULL;
  1140. _bc=XrT58base_class((C)->_current_type);
  1141. _bfbc=((T251*)(C)->_base_feature)->_base_class;
  1142. /*IF*/if (((T0 *)_bc)==((T0 *)_bfbc)) {
  1143. R=((T251*)(C)->_base_feature)->_clients;
  1144. }
  1145. else {
  1146. /*IF*/if (!(rT50is_subclass_of((T50*)_bc,_bfbc))) {
  1147. /*UT*/(T45*)oRBC27eh;
  1148. rT45add_position(XrT67start_position((C)->_name));
  1149. /*UT*/(T45*)oRBC27eh;
  1150. rT45add_position(rT251start_position((T251*)(C)->_base_feature));
  1151. /*UT*/(T45*)oRBC27eh;
  1152. rT45append(((T48*)((T50*)_bc)->_base_class_name)->_to_string);
  1153. /*UT*/(T45*)oRBC27eh;
  1154. rT45append((T0 *)ms1122);
  1155. /*UT*/(T45*)oRBC27eh;
  1156. rT45append(((T48*)((T50*)_bfbc)->_base_class_name)->_to_string);
  1157. rT266error(NULL,(T0 *)ms1123);
  1158. }
  1159. /*FI*/R=rT50clients_for((T50*)_bc,(C)->_name,(C)->_base_feature);
  1160. }
  1161. /*FI*/return R;
  1162. }
  1163. void rT266std_compute_use_current(T266 *C){
  1164. /*IF*/if (((C)->_use_current_state)==(1020)) {
  1165. /*IF*/if (((int)(C)->_require_assertion)) {
  1166. /*IF*/if (rT267use_current((T267*)(C)->_require_assertion)) {
  1167. C->_use_current_state=1018;
  1168. }
  1169. /*FI*/}
  1170. /*FI*/}
  1171. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  1172. /*IF*/if (((int)(C)->_routine_body)) {
  1173. /*IF*/if (rT140use_current((T140*)(C)->_routine_body)) {
  1174. C->_use_current_state=1018;
  1175. }
  1176. /*FI*/}
  1177. /*FI*/}
  1178. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  1179. /*IF*/if (((int)(C)->_ensure_assertion)) {
  1180. /*IF*/if (rT157use_current((T157*)(C)->_ensure_assertion)) {
  1181. C->_use_current_state=1018;
  1182. }
  1183. /*FI*/}
  1184. /*FI*/}
  1185. /*FI*//*IF*/if (((C)->_use_current_state)==(1020)) {
  1186. C->_use_current_state=1017;
  1187. }
  1188. /*FI*/}
  1189. int rT266id(T266 *C){
  1190. int R=0;
  1191. R=XrT58id((C)->_current_type);
  1192. return R;
  1193. }
  1194. T0 * rT266start_position(T266 *C){
  1195. T0 * R=NULL;
  1196. R=rT251start_position((T251*)(C)->_base_feature);
  1197. return R;
  1198. }
  1199. int rT266use_current(T266 *C){
  1200. int R=0;
  1201. {int iv1=(C)->_use_current_state;
  1202. if (1018 == iv1) goto l110;
  1203. goto l111;
  1204.  l110: ;
  1205. R=1;
  1206. goto l109;
  1207.  l111: ;
  1208. if (1017 == iv1) goto l112;
  1209. goto l113;
  1210.  l112: ;
  1211. goto l109;
  1212.  l113: ;
  1213. if (1019 == iv1) goto l114;
  1214. goto l115;
  1215.  l114: ;
  1216. C->_use_current_state=1020;
  1217. rT266compute_use_current(C);
  1218. R=rT266use_current(C);
  1219. goto l109;
  1220.  l115: ;
  1221. if (1020 == iv1) goto l116;
  1222. goto l117;
  1223.  l116: ;
  1224. R=1;
  1225. goto l109;
  1226.  l117: ;
  1227.  l109: ;
  1228. }
  1229. return R;
  1230. }
  1231. void rT266c_define(T266 *C){
  1232. /*IF*/if (rT266isa_in_line(C)) {
  1233. rT40incr_inlined_procedure_count((T40*)oRBC27cpp);
  1234. }
  1235. else {
  1236. /*IF*/if (rT266use_current(C)) {
  1237. rT40incr_procedure_count((T40*)oRBC27cpp);
  1238. }
  1239. else {
  1240. rT40incr_real_procedure_count((T40*)oRBC27cpp);
  1241. }
  1242. /*FI*/rT266define_prototype(C);
  1243. rT266define_opening(C);
  1244. /*IF*/if (((int)(C)->_routine_body)) {
  1245. rT140compile_to_c((T140*)(C)->_routine_body);
  1246. }
  1247. /*FI*/rT266define_closing(C);
  1248. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1389);
  1249. }
  1250. /*FI*/}
  1251. int rT266can_be_dropped(T266 *C){
  1252. int R=0;
  1253. rT266warning(rT266start_position(C),(T0 *)ms1549);
  1254. return R;
  1255. }
  1256. void rT266mapping_c(T266 *C){
  1257. int _tcbd=0;
  1258. /*IF*/if (rT266isa_in_line(C)) {
  1259. rT266in_line(C);
  1260. }
  1261.  else if (rT266use_current(C)) {
  1262. rT266mapping_name(C);
  1263. rT40put_character((T40*)oRBC27cpp,'\50');
  1264. rT40put_target((T40*)oRBC27cpp);
  1265. /*IF*/if ((rT266arg_count(C))>(0)) {
  1266. rT40put_character((T40*)oRBC27cpp,'\54');
  1267. rT40put_arguments((T40*)oRBC27cpp);
  1268. }
  1269. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1405);
  1270. }
  1271. else {
  1272. _tcbd=rT40target_cannot_be_dropped((T40*)oRBC27cpp);
  1273. rT266mapping_name(C);
  1274. rT40put_character((T40*)oRBC27cpp,'\50');
  1275. /*IF*/if ((rT266arg_count(C))>(0)) {
  1276. rT40put_arguments((T40*)oRBC27cpp);
  1277. }
  1278. /*FI*/rT40put_string((T40*)oRBC27cpp,(T0 *)ms1406);
  1279. }
  1280. /*FI*/}
  1281. void rT266mapping_name(T266 *C){
  1282. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1189);
  1283. rT40put_integer((T40*)oRBC27cpp,rT266id(C));
  1284. XrT67mapping_c((C)->_name);
  1285. }
  1286. T0 * rT266run_class(T266 *C){
  1287. T0 * R=NULL;
  1288. R=XrT58run_class((C)->_current_type);
  1289. return R;
  1290. }
  1291. int rT266is_exported_in(T266 *C,T0 * a1){
  1292. int R=0;
  1293. R=rT123gives_permission_to((T123*)rT266clients(C),a1);
  1294. return R;
  1295. }
  1296. void rT266copy(T266 *C,T0 * a1){
  1297. /*IF*//*AF*//*AE*/
  1298. memcpy(C,a1,s[C->id]);
  1299. /*FI*/}
  1300. int rT266arg_count(T266 *C){
  1301. int R=0;
  1302. /*IF*/if (((int)(C)->_arguments)) {
  1303. R=rT92count((T92*)(C)->_arguments);
  1304. }
  1305. /*FI*/return R;
  1306. }
  1307. int rT266is_pre_computable(T266 *C){
  1308. int R=0;
  1309. /*IF*/if (!((C)->_arguments)) {
  1310. /*IF*/if (!((C)->_routine_body)) {
  1311. R=1;
  1312. }
  1313. else {
  1314. /*IF*/if (!((C)->_local_vars)) {
  1315. R=rT140is_pre_computable((T140*)(C)->_routine_body);
  1316. }
  1317. /*FI*/}
  1318. /*FI*/}
  1319. /*FI*/return R;
  1320. }
  1321. void rT266initialize(T266 *C){
  1322. C->_arguments=((T251*)(C)->_base_feature)->_arguments;
  1323. /*IF*/if (((int)(C)->_arguments)) {
  1324. C->_arguments=rT92to_runnable((T92*)(C)->_arguments,(C)->_current_type);
  1325. }
  1326. /*FI*/C->_local_vars=((T251*)(C)->_base_feature)->_local_vars;
  1327. /*IF*/if (((int)(C)->_local_vars)) {
  1328. C->_local_vars=rT139to_runnable((T139*)(C)->_local_vars,(C)->_current_type);
  1329. }
  1330. /*FI*/C->_routine_body=((T251*)(C)->_base_feature)->_routine_body;
  1331. /*IF*/if (((int)(C)->_routine_body)) {
  1332. C->_routine_body=rT140to_runnable((T140*)(C)->_routine_body,(C)->_current_type);
  1333. }
  1334. /*FI*//*IF*/if (rT44require_check((T44*)oRBC27eiffel_run_control)) {
  1335. C->_require_assertion=rT251run_require((T251*)(C)->_base_feature,(T0 *)C);
  1336. }
  1337. /*FI*//*IF*/if (rT44ensure_check((T44*)oRBC27eiffel_run_control)) {
  1338. C->_ensure_assertion=rT251run_ensure((T251*)(C)->_base_feature,(T0 *)C);
  1339. }
  1340. /*FI*/}
  1341. void rT266fall_down(T266 *C){
  1342. T0 * _rf=NULL;
  1343. T0 * _sub_name=NULL;
  1344. T0 * _sub_bc=NULL;
  1345. T0 * _current_bc=NULL;
  1346. T0 * _sub_rc=NULL;
  1347. T0 * _current_rc=NULL;
  1348. int _i=0;
  1349. T0* _running=NULL;
  1350. _current_rc=XrT58run_class((C)->_current_type);
  1351. _running=((T260*)_current_rc)->_running;
  1352. /*IF*/if (((int)_running)) {
  1353. _current_bc=XrT58base_class((C)->_current_type);
  1354. _i=((T263*)_running)->_lower;
  1355. while (!((_i)>(((T263*)_running)->_upper))) {
  1356. _sub_rc=rT263item((T263*)_running,_i);
  1357. /*IF*/if (((T0 *)_sub_rc)!=((T0 *)_current_rc)) {
  1358. _sub_bc=XrT58base_class(((T260*)_sub_rc)->_current_type);
  1359. _sub_name=rT50name_of((T50*)_sub_bc,_current_bc,(C)->_name);
  1360. _rf=rT260get_feature((T260*)_sub_rc,_sub_name);
  1361. }
  1362. /*FI*/_i=(_i)+(1);
  1363. }
  1364. }
  1365. /*FI*/}
  1366. void rT266make(T266 *C,T0 * a1,T0 * a2,T0 * a3){
  1367. C->_current_type=a1;
  1368. C->_name=a2;
  1369. C->_base_feature=a3;
  1370. rT264put((T264*)((T260*)rT266run_class(C))->_feature_dictionary,(T0 *)C,XrT67to_key((C)->_name));
  1371. rT52incr_magic_count((T52*)oRBC27small_eiffel);
  1372. C->_use_current_state=1019;
  1373. rT52push((T52*)oRBC27small_eiffel,(T0 *)C);
  1374. rT266initialize(C);
  1375. rT52pop((T52*)oRBC27small_eiffel);
  1376. }
  1377. int ofBC27type_any=0;
  1378. T0*oRBC27type_any;
  1379. T0 * rT169type_any(/*C*/void){
  1380. T0 * R=NULL;
  1381. if (ofBC27type_any==0){
  1382. ofBC27type_any=1;
  1383. {T87 *n=((T87*)new(87));
  1384. rT87make(n,NULL);
  1385. R=(T0 *)n;}
  1386. oRBC27type_any=R;}
  1387. return oRBC27type_any;}
  1388. int rT169static_value(T169 *C){
  1389. int R=0;
  1390. R=(C)->_static_value_mem;
  1391. return R;
  1392. }
  1393. T0 * rT169to_runnable(T169 *C,T0 * a1){
  1394. T0 * R=NULL;
  1395. rT169error(rT169start_position(C),(T0 *)ms1133);
  1396. return R;
  1397. }
  1398. void rT169error(/*C*/T0 * a1,T0* a2){
  1399. /*UT*/(T45*)oRBC27eh;
  1400. rT45add_position(a1);
  1401. rT45error((T45*)oRBC27eh,a2);
  1402. }
  1403. T0 * rT169add_comment(T169 *C,T0 * a1){
  1404. T0 * R=NULL;
  1405. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1406. R=(T0 *)C;
  1407. }
  1408. else {
  1409. {T220 *n=((T220*)new(220));
  1410. rT220make(n,(T0 *)C,a1);
  1411. R=(T0 *)n;}}
  1412. /*FI*/return R;
  1413. }
  1414. int ofBC169result_type=0;
  1415. T0*oRBC169result_type;
  1416. T0 * rT169result_type(/*C*/void){
  1417. T0 * R=NULL;
  1418. if (ofBC169result_type==0){
  1419. ofBC169result_type=1;
  1420. {T105 *n=((T105*)new(105));
  1421. rT105make(n,NULL,rT169type_any());
  1422. R=(T0 *)n;}
  1423. oRBC169result_type=R;}
  1424. return oRBC169result_type;}
  1425. T0 * rT169start_position(T169 *C){
  1426. T0 * R=NULL;
  1427. /*IF*/if (((int)(C)->_list)) {
  1428. R=XrT67start_position(rT128item((T128*)(C)->_list,1));
  1429. }
  1430. /*FI*/return R;
  1431. }
  1432. void rT169compile_to_c_old(T169 *C){
  1433. int _i=0;
  1434. /*IF*/if (((int)(C)->_list)) {
  1435. _i=1;
  1436. while (!((_i)>(rT128count((T128*)(C)->_list)))) {
  1437. XrT67compile_to_c_old(rT128item((T128*)(C)->_list,_i));
  1438. _i=(_i)+(1);
  1439. }
  1440. }
  1441. /*FI*/}
  1442. void rT169compile_to_c(T169 *C){
  1443. rT169error(rT169start_position(C),(T0 *)ms1186);
  1444. }
  1445. int rT169to_integer(T169 *C){
  1446. int R=0;
  1447. rT169error(rT169start_position(C),(T0 *)ms175);
  1448. return R;
  1449. }
  1450. T0 * rT169written_in(T169 *C){
  1451. T0 * R=NULL;
  1452. T0 * _sp=NULL;
  1453. _sp=rT169start_position(C);
  1454. /*IF*/if (((int)_sp)) {
  1455. R=((T46*)_sp)->_base_class_name;
  1456. }
  1457. /*FI*/return R;
  1458. }
  1459. void rT169copy(T169 *C,T0 * a1){
  1460. /*IF*//*AF*//*AE*/
  1461. memcpy(C,a1,s[C->id]);
  1462. /*FI*/}
  1463. int rT169is_a(T169 *C,T0 * a1){
  1464. int R=0;
  1465. R=rT105is_a((T105*)((T105*)rT169result_type())->_run_type,XrT58run_type(XrT68result_type(a1)));
  1466. /*IF*/if (!(R)) {
  1467. /*UT*/(T45*)oRBC27eh;
  1468. rT45add_position(rT169start_position(C));
  1469. rT169error(XrT68start_position(a1),(T0 *)ms1261);
  1470. }
  1471. /*FI*/return R;
  1472. }
  1473. void rT169make(T169 *C,T0 * a1,T0* a2){
  1474. /*IF*/if (((int)a2)) {
  1475. {T128 *n=((T128*)new(128));
  1476. rT128make(n,a2);
  1477. C->_list=(T0 *)n;}
  1478. }
  1479. /*FI*/}
  1480. T0*oRBC69tmp_string;
  1481. T0 * rT69to_prefix_name(T69 *C){
  1482. T0 * R=NULL;
  1483. {T66 *n=((T66*)new(66));
  1484. rT66make(n,rT69clone(C,(C)->_to_string),rT69pos((C)->_li,(C)->_co));
  1485. R=(T0 *)n;}
  1486. return R;
  1487. }
  1488. void rT69extend(T69 *C,char a1){
  1489. rT7extend((T7*)(C)->_to_string,a1);
  1490. }
  1491. T0 * rT69to_e_void(T69 *C){
  1492. T0 * R=NULL;
  1493. {T172 *n=((T172*)new(172));
  1494. rT172make(n,rT69pos((C)->_li,(C)->_co));
  1495. R=(T0 *)n;}
  1496. return R;
  1497. }
  1498. T0 * rT69to_e_result(T69 *C){
  1499. T0 * R=NULL;
  1500. {T171 *n=((T171*)new(171));
  1501. rT171make(n,rT69pos((C)->_li,(C)->_co));
  1502. R=(T0 *)n;}
  1503. return R;
  1504. }
  1505. T0 * rT69to_e_current(T69 *C){
  1506. T0 * R=NULL;
  1507. {T89 *n=((T89*)new(89));
  1508. rT89make(n,rT69pos((C)->_li,(C)->_co),1);
  1509. R=(T0 *)n;}
  1510. return R;
  1511. }
  1512. int rT69isa_keyword(T69 *C){
  1513. int R=0;
  1514. T0* _kt=NULL;
  1515. int _i=0;
  1516. _kt=oRBC69keyword_table;
  1517. _i=((T41*)_kt)->_upper;
  1518. while (!(((_i)==(0))||(rT7same_as((T7*)rT41item((T41*)_kt,_i),(C)->_to_string)))) {
  1519. _i=(_i)-(1);
  1520. }
  1521. R=(_i)>(0);
  1522. return R;
  1523. }
  1524. int rT69count(T69 *C){
  1525. int R=0;
  1526. R=((T7*)(C)->_to_string)->_count;
  1527. return R;
  1528. }
  1529. T0 * rT69to_decl_name(T69 *C){
  1530. T0 * R=NULL;
  1531. {T97 *n=((T97*)new(97));
  1532. rT97make(n,rT69clone(C,(C)->_to_string),rT69pos((C)->_li,(C)->_co));
  1533. R=(T0 *)n;}
  1534. return R;
  1535. }
  1536. T0 * rT69to_feature_name(T69 *C){
  1537. T0 * R=NULL;
  1538. {T67 *n=((T67*)new(67));
  1539. rT67make(n,rT69clone(C,(C)->_to_string),rT69pos((C)->_li,(C)->_co));
  1540. R=(T0 *)n;}
  1541. return R;
  1542. }
  1543. T0 * rT69start_position(T69 *C){
  1544. T0 * R=NULL;
  1545. {T46 *n=((T46*)new(46));
  1546. rT46make(n,(C)->_li,(C)->_co);
  1547. R=(T0 *)n;}
  1548. return R;
  1549. }
  1550. T0*oRBC69keyword_table;
  1551. T0 * rT69to_class_name(T69 *C){
  1552. T0 * R=NULL;
  1553. {T48 *n=((T48*)new(48));
  1554. rT48make(n,(C)->_to_string,rT69pos((C)->_li,(C)->_co));
  1555. R=(T0 *)n;}
  1556. return R;
  1557. }
  1558. T0* rT69clone(T69 *C,T0* a1){
  1559. T0* R=NULL;
  1560. /*IF*/if (((int)a1)) {
  1561. R=(T0 *)new(a1->id);
  1562. AF_1
  1563. XrT28copy(R,a1);
  1564. AF_0
  1565. }
  1566. /*FI*/return R;
  1567. }
  1568. T0* rT69to_key(T69 *C){
  1569. T0* R=NULL;
  1570. R=(C)->_to_string;
  1571. return R;
  1572. }
  1573. T0 * rT69pos(/*C*/int a1,int a2){
  1574. T0 * R=NULL;
  1575. {T46 *n=((T46*)new(46));
  1576. rT46make(n,a1,a2);
  1577. R=(T0 *)n;}
  1578. return R;
  1579. }
  1580. T0 * rT69to_argument_name(T69 *C,T0 * a1,int a2){
  1581. T0 * R=NULL;
  1582. {T88 *n=((T88*)new(88));
  1583. rT88make(n,rT69pos((C)->_li,(C)->_co),XrT49to_string(rT92name((T92*)a1,a2)),a2);
  1584. R=(T0 *)n;}
  1585. return R;
  1586. }
  1587. T0 * rT69to_tag_name(T69 *C){
  1588. T0 * R=NULL;
  1589. {T159 *n=((T159*)new(159));
  1590. rT159make(n,rT69clone(C,(C)->_to_string),rT69pos((C)->_li,(C)->_co));
  1591. R=(T0 *)n;}
  1592. return R;
  1593. }
  1594. T0 * rT69to_infix_name_use(T69 *C){
  1595. T0 * R=NULL;
  1596. {T70 *n=((T70*)new(70));
  1597. rT70make(n,rT69clone(C,(C)->_to_string),rT69pos((C)->_li,(C)->_co));
  1598. R=(T0 *)n;}
  1599. return R;
  1600. }
  1601. T0 * rT69to_infix_name(T69 *C,T0 * a1){
  1602. T0 * R=NULL;
  1603. {T70 *n=((T70*)new(70));
  1604. rT70make(n,rT69clone(C,(C)->_to_string),a1);
  1605. R=(T0 *)n;}
  1606. return R;
  1607. }
  1608. void rT69copy(T69 *C,T0 * a1){
  1609. /*IF*//*AF*//*AE*/
  1610. memcpy(C,a1,s[C->id]);
  1611. /*FI*/}
  1612. T0 * rT69to_local_name(T69 *C,T0 * a1,int a2){
  1613. T0 * R=NULL;
  1614. {T181 *n=((T181*)new(181));
  1615. rT181make(n,rT69pos((C)->_li,(C)->_co),XrT49to_string(rT139name((T139*)a1,a2)),rT139type((T139*)a1,a2),a2);
  1616. R=(T0 *)n;}
  1617. return R;
  1618. }
  1619. void rT69make(T69 *C,int a1,int a2){
  1620. C->_li=a1;
  1621. C->_co=a2;
  1622. C->_to_string=oRBC69tmp_string;
  1623. /*(IRF3*/(((T7*)(C)->_to_string)->_count)=(0);
  1624. /*)*/}
  1625. int ofBC27type_boolean=0;
  1626. T0*oRBC27type_boolean;
  1627. T0 * rT73type_boolean(/*C*/void){
  1628. T0 * R=NULL;
  1629. if (ofBC27type_boolean==0){
  1630. ofBC27type_boolean=1;
  1631. {T107 *n=((T107*)new(107));
  1632. rT107make(n,NULL);
  1633. R=(T0 *)n;}
  1634. oRBC27type_boolean=R;}
  1635. return oRBC27type_boolean;}
  1636. int rT73is_static(T73 *C){
  1637. int R=0;
  1638. R=1;
  1639. C->_static_value_mem=1;
  1640. return R;
  1641. }
  1642. int rT73static_value(T73 *C){
  1643. int R=0;
  1644. R=(C)->_static_value_mem;
  1645. return R;
  1646. }
  1647. T0 * rT73to_runnable(T73 *C,T0 * a1){
  1648. T0 * R=NULL;
  1649. /*IF*/if (!((C)->_current_type)) {
  1650. C->_current_type=a1;
  1651. R=(T0 *)C;
  1652. }
  1653. else {
  1654. R=rT73clone(C,(T0 *)C);
  1655. /*(IRF3*/(((T73*)R)->_current_type)=(a1);
  1656. /*)*/}
  1657. /*FI*/return R;
  1658. }
  1659. void rT73error(/*C*/T0 * a1,T0* a2){
  1660. /*UT*/(T45*)oRBC27eh;
  1661. rT45add_position(a1);
  1662. rT45error((T45*)oRBC27eh,a2);
  1663. }
  1664. T0 * rT73add_comment(T73 *C,T0 * a1){
  1665. T0 * R=NULL;
  1666. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1667. R=(T0 *)C;
  1668. }
  1669. else {
  1670. {T220 *n=((T220*)new(220));
  1671. rT220make(n,(T0 *)C,a1);
  1672. R=(T0 *)n;}}
  1673. /*FI*/return R;
  1674. }
  1675. T0* rT73clone(T73 *C,T0* a1){
  1676. T0* R=NULL;
  1677. /*IF*/if (((int)a1)) {
  1678. R=(T0 *)new(a1->id);
  1679. AF_1
  1680. XrT28copy(R,a1);
  1681. AF_0
  1682. }
  1683. /*FI*/return R;
  1684. }
  1685. T0 * rT73written_in(T73 *C){
  1686. T0 * R=NULL;
  1687. T0 * _sp=NULL;
  1688. _sp=(C)->_start_position;
  1689. /*IF*/if (((int)_sp)) {
  1690. R=((T46*)_sp)->_base_class_name;
  1691. }
  1692. /*FI*/return R;
  1693. }
  1694. void rT73copy(T73 *C,T0 * a1){
  1695. /*IF*//*AF*//*AE*/
  1696. memcpy(C,a1,s[C->id]);
  1697. /*FI*/}
  1698. int rT73is_a(T73 *C,T0 * a1){
  1699. int R=0;
  1700. R=XrT58is_a(rT107run_type((T107*)/*(IRF4*/rT73type_boolean()/*)*/),XrT58run_type(XrT68result_type(a1)));
  1701. /*IF*/if (!(R)) {
  1702. /*UT*/(T45*)oRBC27eh;
  1703. rT45add_position((C)->_start_position);
  1704. rT73error(XrT68start_position(a1),(T0 *)ms1261);
  1705. }
  1706. /*FI*/return R;
  1707. }
  1708. int rT99is_run_type(T99 *C){
  1709. int R=0;
  1710. R=((int)(C)->_run_type);
  1711. return R;
  1712. }
  1713. T0*oRBC58tmp_string;
  1714. T0* rT99run_time_mark(T99 *C){
  1715. T0* R=NULL;
  1716. /*IF*/if (((int)(C)->_run_type)) {
  1717. R=XrT58run_time_mark((C)->_run_type);
  1718. }
  1719. /*FI*/return R;
  1720. }
  1721. void rT99fatal_error(/*C*/T0* a1){
  1722. rT45fatal_error((T45*)oRBC27eh,a1);
  1723. }
  1724. T0 * rT99to_runnable(T99 *C,T0 * a1){
  1725. T0 * R=NULL;
  1726. T0 * _rc=NULL;
  1727. T0 * _f=NULL;
  1728. T0 * _t=NULL;
  1729. /*IF*/if (!((C)->_run_type)) {
  1730. _rc=XrT58run_class(a1);
  1731. _f=XrT58look_up_for(a1,_rc,(C)->_like_what);
  1732. /*IF*/if (!(_f)) {
  1733. rT99error((C)->_start_position,(T0 *)ms1418);
  1734. }
  1735. else {
  1736. _t=XrT62result_type(_f);
  1737. /*IF*/if (!(_t)) {
  1738. /*UT*/(T45*)oRBC27eh;
  1739. rT45add_position(XrT62start_position(_f));
  1740. rT99error((C)->_start_position,(T0 *)ms1419);
  1741. }
  1742. else {
  1743. _t=XrT58to_runnable(_t,a1);
  1744. /*IF*/if (!(_t)) {
  1745. rT99error((C)->_start_position,(T0 *)ms1420);
  1746. }
  1747. else {
  1748. C->_run_type=XrT58run_type(_t);
  1749. R=(T0 *)C;
  1750. }
  1751. /*FI*/}
  1752. /*FI*/}
  1753. /*FI*/}
  1754. else {
  1755. {T99 *n=((T99*)new(99));
  1756. rT99make(n,(C)->_start_position,(C)->_like_what);
  1757. R=(T0 *)n;}
  1758. R=rT99to_runnable((T99*)R,a1);
  1759. }
  1760. /*FI*/return R;
  1761. }
  1762. void rT99cast_to_ref(T99 *C){
  1763. XrT58cast_to_ref((C)->_run_type);
  1764. }
  1765. void rT99error(/*C*/T0 * a1,T0* a2){
  1766. /*UT*/(T45*)oRBC27eh;
  1767. rT45add_position(a1);
  1768. rT45error((T45*)oRBC27eh,a2);
  1769. }
  1770. int rT99fast_mapping_c(T99 *C){
  1771. int R=0;
  1772. R=XrT58fast_mapping_c((C)->_run_type);
  1773. return R;
  1774. }
  1775. int rT99id(T99 *C){
  1776. int R=0;
  1777. R=((T260*)rT99run_class(C))->_id;
  1778. return R;
  1779. }
  1780. T0* rT99generic_list(T99 *C){
  1781. T0* R=NULL;
  1782. /*UT*/(T45*)oRBC27eh;
  1783. rT45add_type((T0 *)C,(T0 *)ms1437);
  1784. rT45print_as_fatal_error((T45*)oRBC27eh);
  1785. return R;
  1786. }
  1787. int rT99is_reference(T99 *C){
  1788. int R=0;
  1789. R=XrT58is_reference((C)->_run_type);
  1790. return R;
  1791. }
  1792. T0 * rT99look_up_for(T99 *C,T0 * a1,T0 * a2){
  1793. T0 * R=NULL;
  1794. T0 * _bc=NULL;
  1795. _bc=rT99base_class(C);
  1796. /*IF*/if (((int)_bc)) {
  1797. R=rT50look_up_for((T50*)_bc,a1,a2);
  1798. }
  1799. else {
  1800. /*UT*/(T45*)oRBC27eh;
  1801. rT45append((T0 *)ms481);
  1802. /*UT*/(T45*)oRBC27eh;
  1803. rT45add_type((T0 *)C,(T0 *)ms38);
  1804. rT45print_as_error((T45*)oRBC27eh);
  1805. }
  1806. /*FI*/return R;
  1807. }
  1808. void rT99mapping_c_in(T99 *C,T0* a1){
  1809. rT7extend((T7*)a1,'T');
  1810. rT2append_in(rT99id(C),a1);
  1811. }
  1812.